﻿using System.Windows;

namespace WPFSchematics.Graphics.Ghosts
{
    /// <summary>
    /// 观察器宿主接口。
    /// 该宿主实例的生命周期（从对象树中挂载或卸载）、已注册的属性变更将接受指定观察器的管理。
    /// </summary>
    public interface IGhostHost
    {
        /// <summary>
        /// 幻影观察器。
        /// </summary>
        GhostObserver Observer { get; }

        /// <summary>
        /// 幻影对象。
        /// </summary>
        GhostObject Ghost { get; }

        /// <summary>
        /// 创建对象新实例。
        /// </summary>
        /// <returns></returns>
        DependencyObject CreateInstance();

        /// <summary>
        /// 
        /// </summary>
        void RegisterGhostProperty();
    }
}
